% V20210224 - 18.3.3 GW File-Folder Picker Demo INCLUDE "GW.bas" % Check if the GW File Picker is there. % If not, download it! GW_DOWNLOAD_THIRD_PARTY("GW_PICK_FILE.bas") % Register the GW File Picker. INCLUDE "GW_PICK_FILE.bas" % Create a page. p = GW_NEW_PAGE() % Prepare title bar string. title$ = GW_ADD_BAR_TITLE$("GW File/Folder Picker") % Add title to page. GW_ADD_TITLEBAR(p, title$) % Add a textbox, inputline and button to pick a file. pit = GW_ADD_TEXTBOX (p, "File picked:") pil = GW_ADD_INPUTLINE (p, "Filter on file extensions:", "*.bas, *.txt") GW_ADD_BUTTON (p, "Pick a File", "PFI") % Add some space, a textbox and button to pick a folder. GW_ADD_TEXT (p, "") pot = GW_ADD_TEXTBOX (p, "Folder picked:") GW_ADD_BUTTON (p, "Pick a Folder", "PFO") % Render the page GW_RENDER(p) DO % Wait for user action. r$ = GW_WAIT_ACTION$() % Place here any necessary code to process user actions. % User pressed the Pick File button. IF r$ = "PFI" % Show the file picker. filter$ = GW_GET_VALUE$(pil) e$ = GW_PICK_FILE$(filter$) % Now that we are back, render the current page again. GW_RENDER(p) % Show the file picked by the user. IF e$ = "" THEN e$ = "[cancelled by user]" ELSE % Returned file path is relative to rfo-basic/data folder. % Tidy it up a little for presentation: WHILE LEFT$(e$,3) = "../" : e$ = MID$(e$,4) : REPEAT e$ = CHR$(34,47) + e$ + CHR$(34) END IF GW_MODIFY(pit, "text", "File picked: " + e$) % User pressed the Pick Folder button. ELSEIF r$ = "PFO" % Show the folder picker. e$ = GW_PICK_FOLDER$() % Now that we are back, render the current page again. GW_RENDER(p) % Show the file picked by the user. IF e$ = "" THEN e$ = "[cancelled by user]" ELSE % Returned folder path is relative to rfo-basic/data. % Tidy it up a little for presentation: WHILE LEFT$(e$,3) = "../" : e$ = MID$(e$,4) : REPEAT e$ = CHR$(34,47) + e$ + CHR$(34) END IF GW_MODIFY(pot, "text", "Folder picked: " + e$) END IF % End when BACK key is pressed. UNTIL r$ = "BACK" END "End of GW File/Folder Picker demo"